﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using NUnit.Framework;
using Spring.Context;
using Spring.Context.Support;
using bolsatrabajo.Negocio;
using bolsatrabajo.Dominio.NHIBERNATE;

namespace bolsatrabajo.Pruebas
{
    [TestFixture]
    public class TestPostularService
    {
        private IApplicationContext contexto = null;

        [TestFixtureSetUp]
        public void InicializarSpring()
        {
            this.contexto = new XmlApplicationContext(
                "assembly://bolsatrabajo/bolsatrabajo/capanegocio.xml",
                "assembly://bolsatrabajo/bolsatrabajo/capapersistencia.xml");
        }

        [Test]
        public void TestRealizarReservaCorrectamente()
        {
            ServPostular servPostular = (ServPostular)this.contexto.GetObject("servpostular");
            Assert.NotNull(servPostular);
            Postulacion postulacionRealizada = null;
            Assert.DoesNotThrow(delegate
            {
                //postulacionRealizada = servPostular.Postular("hhggfox@gmail.com", 10116, DateTime.Parse("30/05/2011"), "");
            });
            Assert.NotNull(postulacionRealizada);
            Assert.Greater(postulacionRealizada.Id_Postulacion, 0);
        }
        
        [Test]
        public void TestPostulacionesxPostulante()
        {
            ServPostular servpostular = (ServPostular)this.contexto.GetObject("servpostular");
            Assert.NotNull(servpostular);
            ICollection<Postulacion> postulacionesdepostulante = null;
            Assert.DoesNotThrow(delegate
            {
                postulacionesdepostulante = servpostular.PostulacionesxPostulante("hhggfox@gmail.com");
            });
            //CollectionAssert.IsNotEmpty(listaobtenida);
            Console.WriteLine(postulacionesdepostulante.Count);
            Assert.Greater(postulacionesdepostulante.Count, 0);
            foreach (Postulacion x in postulacionesdepostulante)
            {
                Console.WriteLine(x.Id_Postulacion + "|" + x.Aviso+"|"+x.DescripcionPostulante+"|"+x.FechaRegistro+"|"+x.Aviso.Ofertante.RazonSocial);
            }
        }
    }
}